/*
 * CadastrarPedido.java
 *
 * Created on 10/06/2009, 08:32:23
 * Copyright LAS
 */
package Soligee.view;

import Soligee.controller.bo.NFEntradaBO;
import Soligee.controller.bo.PedidoCompraBO;
import Soligee.controller.facade.sessionFacadeImplements.SessionFacadeBuscarImplements;
import Soligee.controller.facade.sessionFacadeImplements.SessionFacadeCadastrarImplements;
import Soligee.decorador.DecoradorInicializaCombos;
import Soligee.decorador.DecoradorNF;
import Soligee.decorador.PaginacaoListaCincoEmCinco;
import Soligee.model.vo.lancamentos.ItensCompraVO;
import Soligee.model.vo.lancamentos.PedidoCompraVO;
import Soligee.view.ApplicationBean1;
import com.icesoft.faces.component.ext.HtmlCommandButton;
import com.icesoft.faces.component.ext.HtmlCommandLink;
import com.icesoft.faces.component.ext.HtmlDataTable;
import com.icesoft.faces.component.ext.HtmlInputText;
import com.icesoft.faces.component.ext.HtmlOutputText;
import com.icesoft.faces.component.ext.HtmlPanelGroup;
import com.icesoft.faces.component.ext.HtmlSelectBooleanCheckbox;
import com.icesoft.faces.component.ext.HtmlSelectOneMenu;
import com.icesoft.faces.component.jsfcl.data.DefaultSelectedData;
import com.icesoft.faces.component.jsfcl.data.DefaultSelectionItems;
import com.icesoft.faces.component.jsfcl.data.DefaultTableDataModel;
import com.icesoft.faces.component.jsfcl.data.PopupBean;
import com.icesoft.faces.component.jsfcl.data.SelectInputDateBean;
import com.icesoft.faces.component.panelpopup.PanelPopup;
import com.icesoft.faces.component.paneltabset.PanelTab;
import com.icesoft.faces.component.paneltabset.PanelTabSet;
import com.icesoft.faces.component.selectinputdate.SelectInputDate;
import com.sun.rave.faces.converter.SqlDateConverter;
import com.sun.rave.web.ui.appbase.AbstractPageBean;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.faces.FacesException;
import javax.faces.event.ValueChangeEvent;
import javax.faces.model.SelectItem;

public class CadastrarPedido extends AbstractPageBean {
    // <editor-fold defaultstate="collapsed" desc="Managed Component Definition">

    private int __placeholder;
   //decorador da tabela de itens
    private static List<DecoradorNF> listaDecoradora = new ArrayList();
    //atributo necessario para paginacao da tabela de itens
    private static PaginacaoListaCincoEmCinco paginacaoTabelaItens;
    //cria uma lista de itens a serem cadastrados para essa nota
    private static List<ItensCompraVO> listaItensCompra = new ArrayList();
    //variavel necessaria para realizar calculos negocio
    private static PedidoCompraBO pedidoCompraBo;
  

    public static PedidoCompraBO getPedidoCompraBo() {
        return pedidoCompraBo;
    }

    public static void setPedidoCompraBo(PedidoCompraBO pedidoCompraBo) {
        CadastrarPedido.pedidoCompraBo = pedidoCompraBo;
    }

    public static List<DecoradorNF> getListaDecoradora() {
        return listaDecoradora;
    }

    public static void setListaDecoradora(List<DecoradorNF> listaDecoradora) {
        CadastrarPedido.listaDecoradora = listaDecoradora;
    }

    public static List<ItensCompraVO> getListaItensCompra() {
        return listaItensCompra;
    }

    public static void setListaItensCompra(List<ItensCompraVO> listaItensCompra) {
        CadastrarPedido.listaItensCompra = listaItensCompra;
    }

    public static PaginacaoListaCincoEmCinco getPaginacaoTabelaItens() {
        return paginacaoTabelaItens;
    }

    public static void setPaginacaoTabelaItens(PaginacaoListaCincoEmCinco paginacaoTabelaItens) {
        CadastrarPedido.paginacaoTabelaItens = paginacaoTabelaItens;
    }

    /**
     * <p>Automatically managed component initialization.  <strong>WARNING:</strong>
     * This method is automatically generated, so any user-specified code inserted
     * here is subject to being replaced.</p>
     */
    private void _init() throws Exception {
    }
    private DefaultTableDataModel dataTable1Model = new DefaultTableDataModel();

    public DefaultTableDataModel getDataTable1Model() {
        return dataTable1Model;
    }

    public void setDataTable1Model(DefaultTableDataModel dtdm) {
        this.dataTable1Model = dtdm;
    }
    private SelectInputDateBean selectInputDate1Bean = new SelectInputDateBean();

    public SelectInputDateBean getSelectInputDate1Bean() {
        return selectInputDate1Bean;
    }

    public void setSelectInputDate1Bean(SelectInputDateBean sidb) {
        this.selectInputDate1Bean = sidb;
    }
    private SelectInputDateBean selectInputDateBean2 = new SelectInputDateBean();

    public SelectInputDateBean getSelectInputDateBean2() {
        return selectInputDateBean2;
    }

    public void setSelectInputDateBean2(SelectInputDateBean sidb) {
        this.selectInputDateBean2 = sidb;
    }
    private SelectInputDate dataRecebimento = new SelectInputDate();

    public SelectInputDate getDataRecebimento() {
        return dataRecebimento;
    }

    public void setDataRecebimento(SelectInputDate sid) {
        this.dataRecebimento = sid;
    }
    private HtmlCommandLink linkCancelar = new HtmlCommandLink();

    public HtmlCommandLink getLinkCancelar() {
        return linkCancelar;
    }

    public void setLinkCancelar(HtmlCommandLink hcl) {
        this.linkCancelar = hcl;
    }
    private SelectInputDate dataEmissao = new SelectInputDate();

    public SelectInputDate getDataEmissao() {
        return dataEmissao;
    }

    public void setDataEmissao(SelectInputDate sid) {
        this.dataEmissao = sid;
    }
    private DefaultSelectedData botaoSelecionadoTipoPagamento = new DefaultSelectedData();

    public DefaultSelectedData getBotaoSelecionadoTipoPagamento() {
        return botaoSelecionadoTipoPagamento;
    }

    public void setBotaoSelecionadoTipoPagamento(DefaultSelectedData dsd) {
        this.botaoSelecionadoTipoPagamento = dsd;
    }
    private DefaultSelectionItems botaoTipoPagamento = new DefaultSelectionItems();

    public DefaultSelectionItems getBotaoTipoPagamento() {
        return botaoTipoPagamento;
    }

    public void setBotaoTipoPagamento(DefaultSelectionItems dsi) {
        this.botaoTipoPagamento = dsi;
    }
    private HtmlSelectOneMenu formaPagamento = new HtmlSelectOneMenu();

    public HtmlSelectOneMenu getFormaPagamento() {
        return formaPagamento;
    }

    public void setFormaPagamento(HtmlSelectOneMenu hsom) {
        this.formaPagamento = hsom;
    }
    private HtmlCommandLink linkCancelar2 = new HtmlCommandLink();

    public HtmlCommandLink getLinkCancelar2() {
        return linkCancelar2;
    }

    public void setLinkCancelar2(HtmlCommandLink hcl) {
        this.linkCancelar2 = hcl;
    }
    private HtmlDataTable tabelaItensPedido = new HtmlDataTable();

    public HtmlDataTable getTabelaItensPedido() {
        return tabelaItensPedido;
    }

    public void setTabelaItensPedido(HtmlDataTable hdt) {
        this.tabelaItensPedido = hdt;
    }
    private DefaultTableDataModel dataTable1Model1 = new DefaultTableDataModel();

    public DefaultTableDataModel getDataTable1Model1() {
        return dataTable1Model1;
    }

    public void setDataTable1Model1(DefaultTableDataModel dtdm) {
        this.dataTable1Model1 = dtdm;
    }
    private HtmlDataTable tabelaItens = new HtmlDataTable();

    public HtmlDataTable getTabelaItens() {
        return tabelaItens;
    }

    public void setTabelaItens(HtmlDataTable hdt) {
        this.tabelaItens = hdt;
    }
    private PanelTabSet painelCadastrarPedido = new PanelTabSet();

    public PanelTabSet getPainelCadastrarPedido() {
        return painelCadastrarPedido;
    }

    public void setPainelCadastrarPedido(PanelTabSet pts) {
        this.painelCadastrarPedido = pts;
    }
    private HtmlCommandButton btnCalcular = new HtmlCommandButton();

    public HtmlCommandButton getBtnCalcular() {
        return btnCalcular;
    }

    public void setBtnCalcular(HtmlCommandButton hcb) {
        this.btnCalcular = hcb;
    }
    private PopupBean panelPopup1Bean = new PopupBean();

    public PopupBean getPanelPopup1Bean() {
        return panelPopup1Bean;
    }

    public void setPanelPopup1Bean(PopupBean pb) {
        this.panelPopup1Bean = pb;
    }
    private PanelPopup panelPopup = new PanelPopup();

    public PanelPopup getPanelPopup() {
        return panelPopup;
    }

    public void setPanelPopup(PanelPopup pp) {
        this.panelPopup = pp;
    }
    private HtmlOutputText textoPopUp = new HtmlOutputText();

    public HtmlOutputText getTextoPopUp() {
        return textoPopUp;
    }

    public void setTextoPopUp(HtmlOutputText hot) {
        this.textoPopUp = hot;
    }
    private HtmlCommandButton btnPopUp1 = new HtmlCommandButton();

    public HtmlCommandButton getBtnPopUp1() {
        return btnPopUp1;
    }

    public void setBtnPopUp1(HtmlCommandButton hcb) {
        this.btnPopUp1 = hcb;
    }
    private HtmlCommandButton btnPopup2 = new HtmlCommandButton();

    public HtmlCommandButton getBtnPopup2() {
        return btnPopup2;
    }

    public void setBtnPopup2(HtmlCommandButton hcb) {
        this.btnPopup2 = hcb;
    }
    private HtmlCommandLink tx_opCancelarAba01 = new HtmlCommandLink();

    public HtmlCommandLink getTx_opCancelarAba01() {
        return tx_opCancelarAba01;
    }

    public void setTx_opCancelarAba01(HtmlCommandLink hcl) {
        this.tx_opCancelarAba01 = hcl;
    }
    private HtmlCommandLink tx_opCancelarAba02 = new HtmlCommandLink();

    public HtmlCommandLink getTx_opCancelarAba02() {
        return tx_opCancelarAba02;
    }

    public void setTx_opCancelarAba02(HtmlCommandLink hcl) {
        this.tx_opCancelarAba02 = hcl;
    }
    private DefaultSelectedData selectOneMenu1Bean = new DefaultSelectedData();

    public DefaultSelectedData getSelectOneMenu1Bean() {
        return selectOneMenu1Bean;
    }

    public void setSelectOneMenu1Bean(DefaultSelectedData dsd) {
        this.selectOneMenu1Bean = dsd;
    }
    private HtmlInputText campoCodItem = new HtmlInputText();

    public HtmlInputText getCampoCodItem() {
        return campoCodItem;
    }

    public void setCampoCodItem(HtmlInputText hit) {
        this.campoCodItem = hit;
    }
    private HtmlInputText campoDescricaoItem = new HtmlInputText();

    public HtmlInputText getCampoDescricaoItem() {
        return campoDescricaoItem;
    }

    public void setCampoDescricaoItem(HtmlInputText hit) {
        this.campoDescricaoItem = hit;
    }
    private HtmlInputText valorTotalItens = new HtmlInputText();

    public HtmlInputText getValorTotalItens() {
        return valorTotalItens;
    }

    public void setValorTotalItens(HtmlInputText hit) {
        this.valorTotalItens = hit;
    }
    private HtmlCommandButton btn_add = new HtmlCommandButton();

    public HtmlCommandButton getBtn_add() {
        return btn_add;
    }

    public void setBtn_add(HtmlCommandButton hcb) {
        this.btn_add = hcb;
    }
    private HtmlInputText campoValorTotalPedido = new HtmlInputText();

    public HtmlInputText getCampoValorTotalPedido() {
        return campoValorTotalPedido;
    }

    public void setCampoValorTotalPedido(HtmlInputText hit) {
        this.campoValorTotalPedido = hit;
    }
    private HtmlInputText campoPorcentagemDesconto = new HtmlInputText();

    public HtmlInputText getCampoPorcentagemDesconto() {
        return campoPorcentagemDesconto;
    }

    public void setCampoPorcentagemDesconto(HtmlInputText hit) {
        this.campoPorcentagemDesconto = hit;
    }
    private HtmlInputText campoPorcentagemEmbalagem = new HtmlInputText();

    public HtmlInputText getCampoPorcentagemEmbalagem() {
        return campoPorcentagemEmbalagem;
    }

    public void setCampoPorcentagemEmbalagem(HtmlInputText hit) {
        this.campoPorcentagemEmbalagem = hit;
    }
    private HtmlInputText campoPorcentagemFrete = new HtmlInputText();

    public HtmlInputText getCampoPorcentagemFrete() {
        return campoPorcentagemFrete;
    }

    public void setCampoPorcentagemFrete(HtmlInputText hit) {
        this.campoPorcentagemFrete = hit;
    }
    private HtmlInputText campoValorFrete = new HtmlInputText();

    public HtmlInputText getCampoValorFrete() {
        return campoValorFrete;
    }

    public void setCampoValorFrete(HtmlInputText hit) {
        this.campoValorFrete = hit;
    }
    private HtmlInputText campoValorEmbalagem = new HtmlInputText();

    public HtmlInputText getCampoValorEmbalagem() {
        return campoValorEmbalagem;
    }

    public void setCampoValorEmbalagem(HtmlInputText hit) {
        this.campoValorEmbalagem = hit;
    }
    private HtmlInputText campoValorDesconto = new HtmlInputText();

    public HtmlInputText getCampoValorDesconto() {
        return campoValorDesconto;
    }

    public void setCampoValorDesconto(HtmlInputText hit) {
        this.campoValorDesconto = hit;
    }
    private HtmlInputText campoValorUnitario = new HtmlInputText();

    public HtmlInputText getCampoValorUnitario() {
        return campoValorUnitario;
    }

    public void setCampoValorUnitario(HtmlInputText hit) {
        this.campoValorUnitario = hit;
    }
    private HtmlInputText campoQuantidade = new HtmlInputText();

    public HtmlInputText getCampoQuantidade() {
        return campoQuantidade;
    }

    public void setCampoQuantidade(HtmlInputText hit) {
        this.campoQuantidade = hit;
    }
    private HtmlPanelGroup painelPrincipal = new HtmlPanelGroup();

    public HtmlPanelGroup getPainelPrincipal() {
        return painelPrincipal;
    }

    public void setPainelPrincipal(HtmlPanelGroup hpg) {
        this.painelPrincipal = hpg;
    }
    private HtmlInputText campoCodPedido = new HtmlInputText();

    public HtmlInputText getCampoCodPedido() {
        return campoCodPedido;
    }

    public void setCampoCodPedido(HtmlInputText hit) {
        this.campoCodPedido = hit;
    }
    private DefaultSelectedData defaultSelectedData1 = new DefaultSelectedData();

    public DefaultSelectedData getDefaultSelectedData1() {
        return defaultSelectedData1;
    }

    public void setDefaultSelectedData1(DefaultSelectedData dsd) {
        this.defaultSelectedData1 = dsd;
    }
    private DefaultSelectionItems selectOneMenu1DefaultItems1 = new DefaultSelectionItems();

    public DefaultSelectionItems getSelectOneMenu1DefaultItems1() {
        return selectOneMenu1DefaultItems1;
    }

    public void setSelectOneMenu1DefaultItems1(DefaultSelectionItems dsi) {
        this.selectOneMenu1DefaultItems1 = dsi;
    }
    private HtmlSelectOneMenu campoRepresentante = new HtmlSelectOneMenu();

    public HtmlSelectOneMenu getCampoRepresentante() {
        return campoRepresentante;
    }

    public void setCampoRepresentante(HtmlSelectOneMenu hsom) {
        this.campoRepresentante = hsom;
    }
    private DefaultSelectedData defaultSelectedData2 = new DefaultSelectedData();

    public DefaultSelectedData getDefaultSelectedData2() {
        return defaultSelectedData2;
    }

    public void setDefaultSelectedData2(DefaultSelectedData dsd) {
        this.defaultSelectedData2 = dsd;
    }
    private DefaultSelectionItems selectOneMenu1DefaultItems = new DefaultSelectionItems();

    public DefaultSelectionItems getSelectOneMenu1DefaultItems() {
        return selectOneMenu1DefaultItems;
    }

    public void setSelectOneMenu1DefaultItems(DefaultSelectionItems dsi) {
        this.selectOneMenu1DefaultItems = dsi;
    }
    private HtmlSelectOneMenu campoFornecedor = new HtmlSelectOneMenu();

    public HtmlSelectOneMenu getCampoFornecedor() {
        return campoFornecedor;
    }

    public void setCampoFornecedor(HtmlSelectOneMenu hsom) {
        this.campoFornecedor = hsom;
    }
    private DefaultSelectedData selectBooleanCheckbox1Bean = new DefaultSelectedData();

    public DefaultSelectedData getSelectBooleanCheckbox1Bean() {
        return selectBooleanCheckbox1Bean;
    }

    public void setSelectBooleanCheckbox1Bean(DefaultSelectedData dsd) {
        this.selectBooleanCheckbox1Bean = dsd;
    }
    private HtmlSelectBooleanCheckbox checkboxPorcentagemFrete = new HtmlSelectBooleanCheckbox();

    public HtmlSelectBooleanCheckbox getCheckboxPorcentagemFrete() {
        return checkboxPorcentagemFrete;
    }

    public void setCheckboxPorcentagemFrete(HtmlSelectBooleanCheckbox hsbc) {
        this.checkboxPorcentagemFrete = hsbc;
    }
    private DefaultSelectedData defaultSelectedData4 = new DefaultSelectedData();

    public DefaultSelectedData getDefaultSelectedData4() {
        return defaultSelectedData4;
    }

    public void setDefaultSelectedData4(DefaultSelectedData dsd) {
        this.defaultSelectedData4 = dsd;
    }
    private HtmlSelectBooleanCheckbox checkboxPorcentagemDesconto = new HtmlSelectBooleanCheckbox();

    public HtmlSelectBooleanCheckbox getCheckboxPorcentagemDesconto() {
        return checkboxPorcentagemDesconto;
    }

    public void setCheckboxPorcentagemDesconto(HtmlSelectBooleanCheckbox hsbc) {
        this.checkboxPorcentagemDesconto = hsbc;
    }
    private HtmlSelectBooleanCheckbox checkboxPorcentagemEmbalagem = new HtmlSelectBooleanCheckbox();

    public HtmlSelectBooleanCheckbox getCheckboxPorcentagemEmbalagem() {
        return checkboxPorcentagemEmbalagem;
    }

    public void setCheckboxPorcentagemEmbalagem(HtmlSelectBooleanCheckbox hsbc) {
        this.checkboxPorcentagemEmbalagem = hsbc;
    }
    private HtmlSelectBooleanCheckbox checkboxValorDesconto = new HtmlSelectBooleanCheckbox();

    public HtmlSelectBooleanCheckbox getCheckboxValorDesconto() {
        return checkboxValorDesconto;
    }

    public void setCheckboxValorDesconto(HtmlSelectBooleanCheckbox hsbc) {
        this.checkboxValorDesconto = hsbc;
    }
    private HtmlSelectBooleanCheckbox checkboxValorEmbalagem = new HtmlSelectBooleanCheckbox();

    public HtmlSelectBooleanCheckbox getCheckboxValorEmbalagem() {
        return checkboxValorEmbalagem;
    }

    public void setCheckboxValorEmbalagem(HtmlSelectBooleanCheckbox hsbc) {
        this.checkboxValorEmbalagem = hsbc;
    }
    private HtmlSelectBooleanCheckbox checkboxValorFrete = new HtmlSelectBooleanCheckbox();

    public HtmlSelectBooleanCheckbox getCheckboxValorFrete() {
        return checkboxValorFrete;
    }

    public void setCheckboxValorFrete(HtmlSelectBooleanCheckbox hsbc) {
        this.checkboxValorFrete = hsbc;
    }
    private DefaultSelectedData defaultSelectedData5 = new DefaultSelectedData();

    public DefaultSelectedData getDefaultSelectedData5() {
        return defaultSelectedData5;
    }

    public void setDefaultSelectedData5(DefaultSelectedData dsd) {
        this.defaultSelectedData5 = dsd;
    }
    private DefaultSelectedData defaultSelectedData6 = new DefaultSelectedData();

    public DefaultSelectedData getDefaultSelectedData6() {
        return defaultSelectedData6;
    }

    public void setDefaultSelectedData6(DefaultSelectedData dsd) {
        this.defaultSelectedData6 = dsd;
    }
    private DefaultSelectedData defaultSelectedData7 = new DefaultSelectedData();

    public DefaultSelectedData getDefaultSelectedData7() {
        return defaultSelectedData7;
    }

    public void setDefaultSelectedData7(DefaultSelectedData dsd) {
        this.defaultSelectedData7 = dsd;
    }
    private DefaultSelectedData defaultSelectedData8 = new DefaultSelectedData();

    public DefaultSelectedData getDefaultSelectedData8() {
        return defaultSelectedData8;
    }

    public void setDefaultSelectedData8(DefaultSelectedData dsd) {
        this.defaultSelectedData8 = dsd;
    }
    private DefaultSelectedData selectBooleanCheckbox2Bean = new DefaultSelectedData();

    public DefaultSelectedData getSelectBooleanCheckbox2Bean() {
        return selectBooleanCheckbox2Bean;
    }

    public void setSelectBooleanCheckbox2Bean(DefaultSelectedData dsd) {
        this.selectBooleanCheckbox2Bean = dsd;
    }
    private DefaultSelectedData selectBooleanCheckbox3Bean = new DefaultSelectedData();

    public DefaultSelectedData getSelectBooleanCheckbox3Bean() {
        return selectBooleanCheckbox3Bean;
    }

    public void setSelectBooleanCheckbox3Bean(DefaultSelectedData dsd) {
        this.selectBooleanCheckbox3Bean = dsd;
    }
    private HtmlCommandButton btn_cadastrar = new HtmlCommandButton();

    public HtmlCommandButton getBtn_cadastrar() {
        return btn_cadastrar;
    }

    public void setBtn_cadastrar(HtmlCommandButton hcb) {
        this.btn_cadastrar = hcb;
    }
    private HtmlCommandButton tabelaItensFooterFirstButton = new HtmlCommandButton();

    public HtmlCommandButton getTabelaItensFooterFirstButton() {
        return tabelaItensFooterFirstButton;
    }

    public void setTabelaItensFooterFirstButton(HtmlCommandButton hcb) {
        this.tabelaItensFooterFirstButton = hcb;
    }
    private HtmlCommandButton tabelaItensFooterPreviousButton = new HtmlCommandButton();

    public HtmlCommandButton getTabelaItensFooterPreviousButton() {
        return tabelaItensFooterPreviousButton;
    }

    public void setTabelaItensFooterPreviousButton(HtmlCommandButton hcb) {
        this.tabelaItensFooterPreviousButton = hcb;
    }
    private HtmlCommandButton tabelaItensFooterNextButton = new HtmlCommandButton();

    public HtmlCommandButton getTabelaItensFooterNextButton() {
        return tabelaItensFooterNextButton;
    }

    public void setTabelaItensFooterNextButton(HtmlCommandButton hcb) {
        this.tabelaItensFooterNextButton = hcb;
    }
    private HtmlCommandButton tabelaItensFooterLastButton = new HtmlCommandButton();

    public HtmlCommandButton getTabelaItensFooterLastButton() {
        return tabelaItensFooterLastButton;
    }

    public void setTabelaItensFooterLastButton(HtmlCommandButton hcb) {
        this.tabelaItensFooterLastButton = hcb;
    }
    private PanelTab aba01 = new PanelTab();

    public PanelTab getAba01() {
        return aba01;
    }

    public void setAba01(PanelTab pt) {
        this.aba01 = pt;
    }
    private PanelTab aba02 = new PanelTab();

    public PanelTab getAba02() {
        return aba02;
    }

    public void setAba02(PanelTab pt) {
        this.aba02 = pt;
    }
    private SqlDateConverter sqlDateConverter1 = new SqlDateConverter();

    public SqlDateConverter getSqlDateConverter1() {
        return sqlDateConverter1;
    }

    public void setSqlDateConverter1(SqlDateConverter sdc) {
        this.sqlDateConverter1 = sdc;
    }

    // </editor-fold>
    public CadastrarPedido() {
    }

    @Override
    public void init() {
        super.init();
        panelPopup.setRendered(false);
        limparCampos();
        this.inicializarCampos();
        //limpa as listas que preenche a tabela de itens
        getListaItensCompra().removeAll(getListaItensCompra());
        getListaDecoradora().removeAll(getListaDecoradora());
        // <editor-fold defaultstate="collapsed" desc="Managed Component Initialization">
        // Initialize automatically managed components
        // *Note* - this logic should NOT be modified
        try {
            _init();
        } catch (Exception e) {
            log("CadastrarPedido Initialization Failure", e);
            throw e instanceof FacesException ? (FacesException) e : new FacesException(e);
        }

    // </editor-fold>
    }

    @Override
    public void preprocess() {
    }

    @Override
    public void prerender() {
    }

    @Override
    public void destroy() {
    }

    protected SessionBean1 getview$SessionBean1() {
        return (SessionBean1) getBean("view$SessionBean1");
    }

    protected RequestBean1 getview$RequestBean1() {
        return (RequestBean1) getBean("view$RequestBean1");
    }

    protected ApplicationBean1 getApplicationBean1() {
        return (ApplicationBean1) getBean("ApplicationBean1");
    }

    protected CadastrarPessoaFisica getview$CadastrarPessoaFisica() {
        return (CadastrarPessoaFisica) getBean("view$CadastrarPessoaFisica");
    }

    protected BuscarPessoaFisica getview$BuscarPessoaFisica() {
        return (BuscarPessoaFisica) getBean("view$BuscarPessoaFisica");
    }

    protected ApplicationBean1 getview$ApplicationBean1() {
        return (ApplicationBean1) getBean("view$ApplicationBean1");
    }

    protected Login getview$Login() {
        return (Login) getBean("view$Login");
    }

    protected BuscarRepresentante getview$BuscarRepresentante() {
        return (BuscarRepresentante) getBean("view$BuscarRepresentante");
    }

    protected BuscarVendedor getview$BuscarVendedor() {
        return (BuscarVendedor) getBean("view$BuscarVendedor");
    }

    protected CadastrarPessoaJuridica getview$CadastrarPessoaJuridica() {
        return (CadastrarPessoaJuridica) getBean("view$CadastrarPessoaJuridica");
    }

    protected BuscarNotaFiscal getview$BuscarNotaFiscal() {
        return (BuscarNotaFiscal) getBean("view$BuscarNotaFiscal");
    }

    protected CadastrarVendedor getview$CadastrarVendedor() {
        return (CadastrarVendedor) getBean("view$CadastrarVendedor");
    }

    public String linkFinalizarPedido_action() {
       if(tabelaItens.getRowCount()!=-1&&this.tabelaItens.getRowCount()!=0){
           aba02.setDisabled(false);
           aba01.setDisabled(true);
           painelCadastrarPedido.setSelectedIndex(1);
       campoValorTotalPedido.setValue( valorTotalItens.getValue());
       }
       else
            controlaPopup(true, "Necessário adicionar itens ao pedido antes de finaliza-lo!", false, true, "OK","OK");
       return null;
    }

  

    public String btnPopUp1_action() {
       SessionFacadeCadastrarImplements cadastrar = new SessionFacadeCadastrarImplements();
       Date dataemissao = (Date) (Object) dataEmissao.getValue();
       Date datarecebimento = (Date) (Object) dataRecebimento.getValue();
       try {             
            if(cadastrar.cadastrarPedido(
                    Integer.parseInt(campoCodPedido.getValue().toString()),
                    Integer.parseInt(campoFornecedor.getValue().toString()),
                    Integer.parseInt(campoRepresentante.getValue().toString()),
                    dataemissao,
                    datarecebimento,
             Integer.parseInt(formaPagamento.getValue().toString()),
             Double.parseDouble(campoPorcentagemFrete.getValue().toString()),
             Double.parseDouble(campoPorcentagemDesconto.getValue().toString()),
             Double.parseDouble(campoPorcentagemEmbalagem.getValue().toString()),
             Double.parseDouble(valorTotalItens.getValue().toString()),
             Double.parseDouble(campoValorTotalPedido.getValue().toString()),
             listaItensCompra)){

               controlaPopup(true,"Pedido cadastrado com Sucesso!",false,true,"","OK");
               listaItensCompra.clear();
               inicializarCampos();
               limparCampos();
               
            }
        } catch (Exception e) {
            controlaPopup(true,"Erro:" + e.getMessage() + "caused by: " + e.getStackTrace(),false,true,"","OK");
            System.err.println("Erro:" + e.getMessage() + "caused by: " + e.getStackTrace());
        }
        return null;
    }



    public String btnPopup2_action() {
        controlaPopup(false,"Pedido cadastrado com Sucesso!",false,true,"","OK");
        return null;
    }

    public void setarCamposPainelCalculos(boolean x){
         campoValorFrete.setDisabled(x);
         campoValorEmbalagem.setDisabled(x);
         campoValorDesconto.setDisabled(x);
         campoPorcentagemEmbalagem.setDisabled(x);
         campoPorcentagemFrete.setDisabled(x);
         campoPorcentagemDesconto.setDisabled(x);
      }
    
    public void tx_opCancelarAba_action() {
        this.limparCampos();
        painelCadastrarPedido.setSelectedIndex(0);
    }

    public void limparCampos() {
        campoPorcentagemFrete.setValue(0.0);
        campoPorcentagemDesconto.setValue(0.0);
        campoPorcentagemEmbalagem.setValue(0.0);
        campoValorDesconto.setValue(0.0);
        campoValorFrete.setValue(0.0);
        campoValorEmbalagem.setValue(0.0);
        this.campoValorTotalPedido.resetValue();
        this.valorTotalItens.resetValue();
        this.dataEmissao.resetValue();
        this.dataRecebimento.resetValue();
        limparCamposItem();
    }

    public void inicializarCampos() {

        botaoTipoPagamento.clear();
        botaoTipoPagamento.add(new SelectItem(1, "A Vista"));
        botaoTipoPagamento.add(new SelectItem(2, "2 Vezes"));
        botaoTipoPagamento.add(new SelectItem(3, "3 Vezes"));
        this.painelCadastrarPedido.setSelectedIndex(0);
        inicializarCampoFornecedor();
        inicializarCampoRepresentante();
        //inicializarCampoFormaPagamento();
        dataTable1Model1.setWrappedData(null);
        //seta o codigo do item a ser cadastrado
        campoCodItem.setValue(new SessionFacadeBuscarImplements().totalDeRegistros(ItensCompraVO.class)+1);
        campoCodItem.setReadonly(true);
        aba02.setDisabled(true);
        aba01.setDisabled(false);
        campoCodPedido.setValue(new SessionFacadeBuscarImplements().totalDeRegistros(PedidoCompraVO.class)+1);
        campoCodPedido.setReadonly(true);
        this.setarCamposPainelCalculos(true);
    }

    public int parseInt(Object object){
       return Integer.parseInt(object.toString());
    }

    public double parseDouble(Object object){
        return Double.parseDouble(object.toString());
    }



    public String btn_add_action() {
            try {
            //controle para adição de quantidade padrão 1
            if(campoQuantidade.getValue().toString().equals("")){
                    campoQuantidade.setValue(1);
                    btn_add_action();
                    limparCamposItem();
            }
            else{
            //calcula o total
            double total = parseDouble(campoQuantidade.getValue())*parseDouble(campoValorUnitario.getValue());
            //adiciona o item na lista
            this.listaItensCompra.add(new ItensCompraVO(parseInt(campoCodItem.getValue()),
                        campoDescricaoItem.getValue().toString(),parseDouble(campoValorUnitario.getValue()),
                        parseDouble(campoQuantidade.getValue()),total));
            this.setPedidoCompraBo(new PedidoCompraBO());
           //calcula total dos itens do pedido
            double totalItens = this.getPedidoCompraBo().calculaValorTotalItens(this.getListaItensCompra());
            valorTotalItens.setValue(totalItens);
            //preenche a tabela
            dataTable1Model1.setWrappedData(this.getListaItensCompra());
            this.setPaginacaoTabelaItens(new PaginacaoListaCincoEmCinco(this.getListaItensCompra()));
            //controle dos botoes da paginacao da tabela de itens
            this.controlaBotoesPaginacaoTabelaItens(this.getListaItensCompra().size());
            //limpa os campos
            this.limparCamposItem();
            //fim do else
            }
        } catch (NumberFormatException e) {
             controlaPopup(true,"Necessário adicionar uma quantidade",false,true,"","OK");
            System.err.println("Necessario adicionar uma quantidade. Erro: " + e.getMessage() + e.getStackTrace());
        } finally {
            return null;
        }     
    }

    //meotodo para controle dos botoes da paginacao
    public void controlaBotoesPaginacaoTabelaItens(int tamanhoLista) {
        if(tamanhoLista <= 5){
            //disabilita os botoes da tabela de itens
            tabelaItensFooterFirstButton.setDisabled(true);
            tabelaItensFooterPreviousButton.setDisabled(true);
            tabelaItensFooterNextButton.setDisabled(true);
            tabelaItensFooterLastButton.setDisabled(true);
        }
        if (tamanhoLista > 5) {//se a lista tiver mais que uma pagina
            tabelaItensFooterNextButton.setDisabled(false);
            tabelaItensFooterLastButton.setDisabled(false);
        }
    }

     public void limparCamposItem() {
        campoDescricaoItem.resetValue();
        campoValorUnitario.resetValue();
        campoQuantidade.resetValue();
    }

  
    public String tabelaItens_firstPageAction() {
        dataTable1Model1.setWrappedData(this.getPaginacaoTabelaItens().firstPage());
          tabelaItensFooterFirstButton.setDisabled(true);
            tabelaItensFooterPreviousButton.setDisabled(true);
            if(this.getPaginacaoTabelaItens().getTotalPaginas()>1){
                tabelaItensFooterNextButton.setDisabled(false);
                tabelaItensFooterLastButton.setDisabled(false);
            }
       return null;

    }


    public String tabelaItens_previousPageAction() {
         dataTable1Model1.setWrappedData(this.getPaginacaoTabelaItens().previousPage());
             if(this.getPaginacaoTabelaItens().getNumeroDaPagina()==1){
                  tabelaItensFooterNextButton.setDisabled(true);
                  tabelaItensFooterFirstButton.setDisabled(true);
                  tabelaItensFooterPreviousButton.setDisabled(true);
            }
            if(this.getPaginacaoTabelaItens().getTotalPaginas()>1){
                 tabelaItensFooterNextButton.setDisabled(false);
            }
            if(this.getPaginacaoTabelaItens().getNumeroDaPagina() >= 2){
                tabelaItensFooterFirstButton.setDisabled(false);
            }
           return null;

           }

    public String tabelaItens_nextPageAction() {
        dataTable1Model1.setWrappedData(this.getPaginacaoTabelaItens().nextPage());
          tabelaItensFooterPreviousButton.setDisabled(false);
            if(this.getPaginacaoTabelaItens().getTotalPaginas()==this.getPaginacaoTabelaItens().getNumeroDaPagina()){
                 tabelaItensFooterNextButton.setDisabled(true);
                  tabelaItensFooterLastButton.setDisabled(true);
            }
            if(this.getPaginacaoTabelaItens().getNumeroDaPagina() >= 2){
                tabelaItensFooterFirstButton.setDisabled(false);
            }
        return null;

    }

    public String tabelaItens_lastPageAction() {
         dataTable1Model1.setWrappedData(this.getPaginacaoTabelaItens().lastPage());
        if(this.getPaginacaoTabelaItens().getTotalPaginas()==this.getPaginacaoTabelaItens().getNumeroDaPagina()){
                  tabelaItensFooterLastButton.setDisabled(true);
                  tabelaItensFooterNextButton.setDisabled(true);
                  tabelaItensFooterPreviousButton.setDisabled(false);
                  tabelaItensFooterFirstButton.setDisabled(false);
         }
         if(this.getPaginacaoTabelaItens().getNumeroDaPagina() >= 2){
                tabelaItensFooterFirstButton.setDisabled(false);
         }
         return null;

    }

        //metodo para preenchimento do combobox fornecedor
    public void inicializarCampoFornecedor() {
         this.setSelectOneMenu1DefaultItems(new DecoradorInicializaCombos().inicializarCampoFornecedor());
    }


    //metodo para preenchimento do combobox fornecedor
    public void inicializarCampoFormaPagamento() {
            this.setBotaoTipoPagamento(new DecoradorInicializaCombos().inicializarCampoFormaPagamento());
    }

    //metodo para preenchimento do combobox fornecedor
    public void inicializarCampoRepresentante() {
          this.setSelectOneMenu1DefaultItems1(new DecoradorInicializaCombos().inicializarCampoRepresentante());
    }

    
    public void controlaPopup(boolean renderedPopup,String textoPoup,boolean btn1Rendered, boolean btn2Rendered,
            String textobtn1, String textobtn2){
        panelPopup.setRendered(renderedPopup);
        textoPopUp.setValue(textoPoup);
        btnPopUp1.setValue(textobtn1);
        btnPopUp1.setRendered(btn1Rendered);
        btnPopup2.setRendered(btn2Rendered);
        btnPopup2.setValue(textobtn2);
    }

    public void checkboxValorFrete_processValueChange(ValueChangeEvent vce) {
        if(checkboxValorFrete.isSelected()){
            campoValorFrete.setDisabled(false);
            campoValorFrete.setValue(0.0);
            checkboxPorcentagemFrete.setDisabled(true);
        }else{
            campoValorFrete.setDisabled(true);
            checkboxPorcentagemFrete.setDisabled(false);
        }
    }

    public void checkboxValorEmbalagem_processValueChange(ValueChangeEvent vce) {
         if(checkboxValorEmbalagem.isSelected()){
            campoValorEmbalagem.setDisabled(false);
            campoValorEmbalagem.setValue(0.0);
            checkboxPorcentagemEmbalagem.setDisabled(true);
        }else{
            campoValorEmbalagem.setDisabled(true);
            checkboxPorcentagemEmbalagem.setDisabled(false);
        }
    }

    public void checkboxValorDesconto_processValueChange(ValueChangeEvent vce) {
        if(checkboxValorDesconto.isSelected()){
            campoValorDesconto.setDisabled(false);
            campoValorDesconto.setValue(0.0);
            checkboxPorcentagemDesconto.setDisabled(true);
        }else{
            campoValorDesconto.setDisabled(true);
            checkboxPorcentagemDesconto.setDisabled(false);
        }
    }

    public void checkboxPorcentagemDesconto_processValueChange(ValueChangeEvent vce) {
        if(checkboxPorcentagemDesconto.isSelected()){
            campoPorcentagemDesconto.setDisabled(false);
            campoPorcentagemDesconto.setValue(0.0);
            checkboxValorDesconto.setDisabled(true);
        }else{
            campoPorcentagemDesconto.setDisabled(true);
             checkboxValorDesconto.setDisabled(false);
        }
    }

    public void checkboxPorcentagemEmbalagem_processValueChange(ValueChangeEvent vce) {
        if(checkboxPorcentagemEmbalagem.isSelected()){
            campoPorcentagemEmbalagem.setDisabled(false);
            campoPorcentagemEmbalagem.setValue(0.0);
            checkboxValorEmbalagem.setDisabled(true);
        }else{
            campoPorcentagemEmbalagem.setDisabled(true);
            checkboxValorEmbalagem.setDisabled(false);
        }
    }

    public void checkboxPorcentagemFrete_processValueChange(ValueChangeEvent vce) {
        if(checkboxPorcentagemFrete.isSelected()){
            campoPorcentagemFrete.setDisabled(false);
            campoPorcentagemFrete.setValue(0.0);
            checkboxValorFrete.setDisabled(true);
        }else{
            campoPorcentagemFrete.setDisabled(true);
            checkboxValorFrete.setDisabled(false);
        }
    }

    public String btn_cadastrar_action() {
        Date dataemissao = (Date) (Object) dataEmissao.getValue();
        Date datarecebimento = (Date) (Object) dataRecebimento.getValue();
        if(dataemissao.before(datarecebimento))
        controlaPopup(true,"Deseja confirmar o cadastro?",true,true,"Sim","Não");
        else
            controlaPopup(true, "Data de recebimento deve ser posterior a data de emissão", false, true, "", "Ok");
        return null;
    }

    public String btnRemoverItem_action() {
        System.out.println(tabelaItens.getRowIndex());
        int indiceRemover = 0;
        if(this.getPaginacaoTabelaItens().getNumeroDaPagina()==1){
              indiceRemover = tabelaItens.getRowIndex();
        }else{
            indiceRemover = this.getPaginacaoTabelaItens().getFirstResult()+indiceRemover;
            System.out.println(indiceRemover);
        }
        this.getListaItensCompra().remove(indiceRemover);

        dataTable1Model1.setWrappedData(this.getListaItensCompra());
        //controle da paginacao apos remocao
        this.setPaginacaoTabelaItens(new PaginacaoListaCincoEmCinco(this.getListaItensCompra()));
        //controle dos botoes da paginacao da tabela de itens
        this.controlaBotoesPaginacaoTabelaItens(this.getListaItensCompra().size());
        //calcula valor total produtos
        valorTotalItens.setValue((new PedidoCompraBO().calculaValorTotalItens(this.getListaItensCompra())));
        this.limparCamposItem();
        return null;
    }

    public String btnVoltarAba1_action() {
        painelCadastrarPedido.setSelectedIndex(0);
        aba01.setDisabled(false);
        aba02.setDisabled(true);
        return null;
    }
    //Métodos para calculo de Valores à partir de Porcentagens e calculo de Porcentagens à partir de Valores
    public void finalizaPercentuaisPorcPedido(HtmlInputText hit1, HtmlInputText hit2,HtmlInputText hit3){
        hit3.setValue(pedidoCompraBo.calcularValor(hit1,hit2));

        valorTotalItens.setValue(CadastrarPedido.getPedidoCompraBo().calculaTotalPedido(Double.parseDouble(campoValorFrete.getValue().toString()),
            Double.parseDouble(campoValorDesconto.getValue().toString()), Double.parseDouble(campoValorEmbalagem.getValue().toString()),
            CadastrarPedido.getPedidoCompraBo().getValorTotalItens()));

    }

    public void finalizaPercentuaisValPedido(HtmlInputText hit1, HtmlInputText hit2,HtmlInputText hit3){
        hit3.setValue(pedidoCompraBo.calcularPorcentagem(hit1,hit2));

        valorTotalItens.setValue(CadastrarPedido.getPedidoCompraBo().calculaTotalPedido(Double.parseDouble(campoValorFrete.getValue().toString()),
            Double.parseDouble(campoValorDesconto.getValue().toString()), Double.parseDouble(campoValorEmbalagem.getValue().toString()),
            CadastrarPedido.getPedidoCompraBo().getValorTotalItens()));
    }
    //calculo de Valores à partir de Porcentagens
    public void campoPorcentagemFrete_processValueChange(ValueChangeEvent vce) {
        finalizaPercentuaisPorcPedido(campoPorcentagemFrete,campoValorTotalPedido,campoValorFrete);
    }

    public void campoPorcentagemDesconto_processValueChange(ValueChangeEvent vce) {
         finalizaPercentuaisPorcPedido(campoPorcentagemDesconto,campoValorTotalPedido,campoValorDesconto);
    }

    public void campoPorcentagemEmbalagem_processValueChange(ValueChangeEvent vce) {
        finalizaPercentuaisPorcPedido(campoPorcentagemEmbalagem,campoValorTotalPedido,campoValorEmbalagem);
    }
    //calculo de Porcentagens à partir de Valores
    public void campoValorFrete_processValueChange(ValueChangeEvent vce) {
        finalizaPercentuaisValPedido(campoValorFrete,campoValorTotalPedido,campoPorcentagemFrete);
    }

    public void campoValorDesconto_processValueChange(ValueChangeEvent vce) {
        finalizaPercentuaisValPedido(campoValorDesconto,campoValorTotalPedido,campoPorcentagemDesconto);
    }

    public void campoValorEmbalagem_processValueChange(ValueChangeEvent vce) {
        finalizaPercentuaisValPedido(campoValorEmbalagem,campoValorTotalPedido,campoPorcentagemEmbalagem);

    }
    


  }

